NAND flash memory is available from different vendors, with different flash memory device interfaces and protocols. These protocols include asynchronous SDR (single data rate), synchronous DDR (double data rate), Toggle inode (also a type of DDR or double data rate, in various release versions and from various manufacturers) and ONFI (Open NAND Flash Interface Working Group Standard, also a type of DDR or double data rate, in various release versions and from various manufacturers), and others may be developed. The proliferation of flash memory device interfaces and protocols poses a problem to designers of flash controllers for various storage devices, who generally choose one flash memory device interface and one protocol, and design the flash controller according to those. It then becomes difficult to change suppliers, or cope with shortages in the marketplace or advances in flash memory product capabilities during a flash controller product lifetime. Also, flash memory device characteristics may change over the lifespan of a flash die, which can degrade the performance of a storage system that uses a particular flash controller and flash memory die(s). In addition, upgrades to the system or software upgrades tend to be disruptive and the calibration of a system may be lost during a power interruption to the system. It is within this context that the embodiments arise.